[アップデート] Amazon MSK レプリケーターが東京リージョンで使えるようになったので構成してみた
いわさです。
先日のアップデートで Amazon MSK のレプリケーターという機能が東京リージョンでも使えるようになったというアナウンスがありました。
MSK レプリケーターってなんだっけと思ったのですが、調べてみると 2023 年 10 月に登場したばかりの機能で、MSK クラスター間でマルチリージョンレプリケーションを実現させるためのマネージドサービスだそうです。
なぜか DevelopersIO に記事がない...!
これはイカンということで、今回は MSK レプリケーターを東京リージョンで構成して使ってみましたので手順などを紹介したいと思います。
MSK レプリケーターの設定方法
Amazon MSK のサイドメニューに次のように新しく追加されています。
東京リージョンでは使えますが、大阪リージョンでは使えないのでご注意ください。シンガポールリージョンは使えました。対象リージョンは次のドキュメントをご確認ください。
MSK クラスターは現在はプロビジョニングとサーバーレスが存在していますが、MSK レプリケーターはどちらもサポートしています。組み合わせも任意のようです。
ただしクラスターの実行バージョンは Apache Kafka 2.7.0 以上である必要があり、m5.large 以上のインスタンスタイプを使ったクラスターである必要があるなど、いくつか前提条件があります。
利用を検討する際には次の「Supported cluster types and versions」には注意しましょう。
レプリケーションは単方向であり、ソースクラスターとターゲットクラスターを指定します。
同一リージョンでもクロスリージョンでも可能ですが、MSK レプリケーターはデプロイされるとそれぞれの VPC に ENI を作成して VPC 内部での通信を行います。
使ってみた
今回は東京リージョンに MSK サーバーレスクラスターを 2 つ作成し、レプリケーターを構成してみました。
それぞれサーバーレスクラスターを作成後に、新しく MSK レプリケーターを作成します。
ここのセキュリティグループを使って MSK レプリケーターはソースとターゲットのクラスターと通信することになりますので、通信の許可を行う必要があります。
ターゲットクラスターも同様ですが、どうやら MSK レプリケーターはソースクラスターと同一リージョンで作成する必要があるようです。
ソースクラスターのクラスターリージョンは選択出来たのですが、ターゲットクラスターのクラスターリージョンは選択が出来ませんでした。
最後にレプリケーターがレプリケーションする対象と圧縮オプションを指定するだけです。レプリケーターの構築自体は非常に簡単ですね。
作成後しばらく経過すると MSK レプリケーターのステータスが「実行中」になるはずです。
次の画像だと「失敗」ステータスになっているものがあると思いますが、これはターゲットのクラスターポリシーの編集が出来ていなかったために発生していました。エラーメッセージではネットワーク接続が...のように読み取れるのですが、何度か失敗した感じだと接続エラー全般このエラーになる様子なのでクラスターポリシーご注意ください。
レプリケーション実行の様子
MSK といえばプロデューサーとコンシューマーの準備が面倒なのですが、過去の自分がクライアント用 EC2 を一発でデプロイ出来る CloudFormation を作成していました。感謝...!
上記記事にしたがってクライアントをデプロイし、リモート接続して Kafka クライアントからクラスターへ接続させます。
適当なトピックを作成してサンプルレコードを大量に送信しました。
次はソースクラスターのメトリクスです。送信されていますね。
そして、次はレプリケーターのメトリクスで、同じような形でスループットが増加していることが確認出来ます。
そしてこちらがターゲットクラスターのメトリクスです。
MSK レプリケーターによって大量にレプリケーションというか、ソースからのデータがコピー送信されていることが確認出来ます。
追加料金発生します
Amazon MSK の料金ページにも追記されていますが、MSK レプリケーターは追加料金が発生します。
料金構成ですが、まず MSK レプリケーターがプロビジョニングされた瞬間からプロビジョニング料金が発生します。東京リージョンでは 1 時間 0.41 ドルです。720 時間で 295.2 ドルですね。
また、レプリケートされたデータサイズに応じて追加で料金が発生します。こちらは 1 GiB あたり 0.11 ドルです。
基本料金構成は上記のみですが、クロスリージョンレプリケーションを行う場合はリージョン間通信の料金も発生します。
さいごに
本日は Amazon MSK レプリケーターが東京リージョンで使えるようになったので構成してみました。
追加料金が発生するオプションですが、従来よりも可用性向上などが求められていたワークロードの場合は検討されても良いのではないでしょうか。
MSK レプリケーター自体はマネージドなので、導入自体はかなり手軽に出来ると思います。